﻿using System;
using System.Windows.Forms;
using Scommesse.Presenters.Admin;

namespace Scommesse.View.Admin
{
    public partial class EliminaDialog : Form
    {
        private IEliminaPresenter _eliminaPresenter;

        public EliminaDialog()
        {
            InitializeComponent();
        }

        public void AddListener(IEliminaPresenter presenter)
        {
            _eliminaPresenter = presenter;
        }

        #region Properties

        public bool CompComboBox
        {
            get { return SelCompetizioneComboBox.Visible; }
            set { SelCompetizioneComboBox.Visible = value; }          
        }

        public bool CompLabel
        {
            get { return SelCompetizioneLabel.Visible; }
            set { SelCompetizioneLabel.Visible = value; }
        }

        public bool EventoComboBox
        {
            get { return SelEventoComboBox.Visible; }
            set { SelEventoComboBox.Visible = value; }
        }

        public bool EventoLabel
        {
            get { return SelEventoLabel.Visible; }
            set { SelEventoLabel.Visible = value; }
        }

        public String AddCategoria
        {
            set { SelCategoriaComboBox.Items.Add(value); }
        }

        public String AddCompetizione
        {
            set { SelCompetizioneComboBox.Items.Add(value); }
        }

        public String AddEvento
        {
            set { SelEventoComboBox.Items.Add(value); }
        }

        public String NomeCategoria
        {
            get { return SelCategoriaComboBox.SelectedItem.ToString(); }
            set { SelCategoriaComboBox.Text = value; }
        }

        public String NomeCompetizione
        {
            get { return SelCompetizioneComboBox.SelectedItem.ToString(); }
            set { SelCompetizioneComboBox.Text = value; }
        }

        public String NomeEvento
        {
            get { return SelEventoComboBox.SelectedItem.ToString(); }
            set { SelEventoComboBox.Text = value; }
        }

        public String CategoriaError
        {
            set { CatErrorProvider.SetError(SelCategoriaComboBox, value); }
        }

        public String CompetizioneError
        {
            set { CompErrorProvider.SetError(SelCompetizioneComboBox, value); }
        }

        public String EventoError
        {
            set { EventoErrorProvider.SetError(SelEventoComboBox, value); }
        }

        #endregion

        // Inizializza la form appena viene showata per la prima volta
        private void EliminaDialog_Shown(object sender, EventArgs e)
        {
            SelCompetizioneComboBox.Items.Clear();
            SelCategoriaComboBox.Items.Clear();
            SelEventoComboBox.Items.Clear();

            _eliminaPresenter.ClearView();
        }

        private void ConfermaEliminaButton_Click(object sender, EventArgs e)
        {
            EventoErrorProvider.Clear();
            CompErrorProvider.Clear();
            CatErrorProvider.Clear();

            _eliminaPresenter.ConfermaElimina();         
        }

        private void AnnullaOpButton_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void SelCategoriaComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            SelCompetizioneComboBox.Items.Clear();
            _eliminaPresenter.LoadCompetizioni();
        }

        private void SelCompetizioneComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            SelEventoComboBox.Items.Clear();
            _eliminaPresenter.LoadEventi();
        }

        #region Auto Click On Enter

        private void SelCategoriaComboBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                ConfermaEliminaButton.PerformClick();
        }

        private void SelCompetizioneComboBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                ConfermaEliminaButton.PerformClick();
        }

        private void SelEventoComboBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                ConfermaEliminaButton.PerformClick();
        }

        #endregion
    }
}